package com.link.base.base.forum.service;

import com.link.base.base.forum.model.Forum;
import com.link.base.base.forum.model.ForumReplay;
import com.link.base.base.forum.model.People;
import com.link.core.basic.service.BasicService;

import java.util.List;

/**
 * 论坛
 *
 * @author ouyangzhenqiang
 * @date 2018/11/7
 */
public interface ForumService extends BasicService<Forum> {

    /**
     * 查询帖子列表
     *
     * @param qps
     * @return
     * @throws Exception
     */
    List<Forum> queryForumList(Forum record) throws Exception;

    /**
     * 新增主题帖子
     *
     * @param record
     * @throws Exception
     */
    void addForum(Forum record) throws Exception;

    /**
     * 修改主题帖子
     *
     * @param record
     * @throws Exception
     */
    void updateForum(Forum record) throws Exception;

    /**
     * 查询主题帖子的回复内容
     *
     * @param qps
     * @return
     * @throws Exception
     */
    List<ForumReplay> queryForumReplayPage(ForumReplay record) throws Exception;

    /**
     * 新增主题帖子回复
     *
     * @param record
     * @throws Exception
     */
    void addReplayOfForum(ForumReplay record) throws Exception;

    /**
     * 查询主题可选的参与人
     *
     * @param qps
     * @return
     * @throws Exception
     */
    List<People> queryPeoplePage(People record) throws Exception;


    /**
     * 查询主题已选的参与人
     *
     * @param qps
     * @return
     * @throws Exception
     */
    List<People> queryPeopleOfForumByPage(People record) throws Exception;


    /**
     * 插入主题参与人
     *
     * @param record
     * @throws Exception
     */
    void forumPeopleInsert(Forum record) throws Exception;

    /**
     * 删除主题参与人
     *
     * @param record
     * @throws Exception
     */
    void forumPeopleDelete(Forum record) throws Exception;


    void forumDelete(Forum record) throws Exception;

    /**
     * 查询各类型帖子数量
     *
     * @author lizt
     * 2017年4月26日
     */
    List<Forum> queryForumTypeNum(Forum record) throws Exception;

    /**
     * 删除回复
     *
     * @author lizt
     * 2017年4月12日
     */
    void delForumReplyById(ForumReplay record) throws Exception;


    /**
     * 评论查询
     *
     * @author lizt
     * 2017年4月12日
     */
    List<ForumReplay> queryForumReplayList(ForumReplay record) throws Exception;

    /**
     * 评论总数
     *
     * @author lizt
     * 2017年4月12日
     */
    int queryForumReplayListCount(ForumReplay record) throws Exception;

    /**
     * 评论帖子
     *
     * @author lizt
     * 2017年4月12日
     */
    void forumReplayInsert(ForumReplay record) throws Exception;

    /**
     * 获取论坛的浏览量、阅读人数、点赞量、收藏量、当前用户是否点赞、是否收藏
     *
     * @author ouyangzhenqiang
     * @date 2018/11/7
     * @param record
     * @param userId
     * @return
     * @throws Exception
     */
    void setStatisticsData(Forum record, Long userId) throws Exception;
}


